home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 020 / modula.arc / PCKEYS.MOD < prev    next >
Encoding:
Modula Implementation  |  1986-08-20  |  4.3 KB  |  153 lines

  1.  
  2. IMPLEMENTATION MODULE PcKeys;
  3.  
  4. (**********************************************************)
  5. (*   ROLLINS MEDICAL/DENTAL SYSTEMS                       *)
  6. (*   360 CLAUSEN BUILDING                                 *)
  7. (*   23100 PROVIDENCE DRIVE                               *)
  8. (*   SOUTHFIELD, MI  48075-3677                           *)
  9. (*   -------------------------------------------------    *)
  10. (*  |                                                 |   *)
  11. (*  | Key Defs for Pc                                 |   *)
  12. (*  |                                                 |   *)
  13. (*   -------------------------------------------------    *)
  14. (*   Author: John Tal            Created: 04/22/1986      *)
  15. (*   Version:  2.00 a          Last Edit: 04/26/1986      *)
  16. (*                                                        *)
  17. (*   (C) Copyright 1986 ROLLINS MEDICAL/DENTAL SYSTEMS    *)
  18. (*       All Rights Reserved                              *)
  19. (*                                                        *)
  20. (*    Permission is hereby granted to use and modify the  *)
  21. (*  following module in the implementation of customized  *)
  22. (*  software.                                             *)
  23. (*    This permission includes the right to re-distribute *)
  24. (*  the original source code but does not include the     *)
  25. (*  right to redistribute modified source code of this    *)
  26. (*  program.                                              *)
  27. (**********************************************************)
  28.  
  29.  
  30. FROM SYSTEM IMPORT DOSCALL,BYTE;
  31. FROM Keyboard IMPORT KeyPressed;
  32.  
  33.  
  34. PROCEDURE MakeSpecial(b: CHAR; VAR c: ARRAY OF CHAR);
  35. BEGIN
  36.   c[0] := CHR(0);
  37.   c[1] := b;
  38. END MakeSpecial;
  39.  
  40. PROCEDURE CompareKey(keysA,keysB: ARRAY OF CHAR) : BOOLEAN;
  41. BEGIN
  42.   IF ORD(keysA[0]) = 0 THEN
  43.     IF ORD(keysA[0]) = ORD(keysB[0]) THEN
  44.       IF ORD(keysA[1]) = ORD(keysB[1]) THEN
  45.         RETURN TRUE;
  46.       ELSE
  47.         RETURN FALSE;
  48.       END;
  49.     ELSE
  50.       RETURN FALSE;
  51.     END;
  52.   ELSE
  53.     IF ORD(keysA[0]) = ORD(keysB[0]) THEN
  54.       RETURN TRUE;
  55.     ELSE
  56.       RETURN FALSE;
  57.     END;
  58.   END;
  59. END CompareKey;
  60.  
  61. PROCEDURE InKey(VAR keys: ARRAY OF CHAR) : BOOLEAN;
  62. VAR
  63.  keyfetch : BYTE;
  64. BEGIN
  65.   IF KeyPressed() THEN
  66.     DOSCALL(8H,keyfetch);
  67.     IF ORD(keyfetch) = 0 THEN
  68.        DOSCALL(8H,keyfetch);
  69.        keys[0] := CHR(0);
  70.        keys[1] := CHR(ORD(keyfetch));
  71.        RETURN(TRUE);
  72.      ELSE
  73.        keys[0] := CHR(ORD(keyfetch));
  74.        keys[1] := CHR(0);
  75.        RETURN(TRUE);
  76.     END
  77.    ELSE
  78.     RETURN(FALSE);
  79.   END;
  80. END InKey;
  81.  
  82. PROCEDURE SpecialKey(keys: ARRAY OF CHAR) : BOOLEAN;
  83. BEGIN
  84.   IF ORD(keys[0]) = 0 THEN
  85.     RETURN TRUE;
  86.   ELSE
  87.     RETURN FALSE;
  88.   END;
  89. END SpecialKey;
  90.  
  91. BEGIN
  92.   CarriageReturn := CHR(13);
  93.   BackSpace := CHR(8);
  94.   Tab := CHR(9);
  95.   Escape := CHR(27);
  96.   MakeSpecial(CHR(71),Home);
  97.   MakeSpecial(CHR(72),UpArrow);
  98.   MakeSpecial(CHR(73),PageUp);
  99.   MakeSpecial(CHR(75),LtArrow);
  100.   MakeSpecial(CHR(77),RtArrow);
  101.   MakeSpecial(CHR(79),End);
  102.   MakeSpecial(CHR(80),DnArrow);
  103.   MakeSpecial(CHR(81),PageDn);
  104.   MakeSpecial(CHR(82),Insert);
  105.   MakeSpecial(CHR(83),Delete);
  106.   MakeSpecial(CHR(15),ShiftTab);
  107.  
  108.   MakeSpecial(CHR(59),F1);
  109.   MakeSpecial(CHR(60),F2);
  110.   MakeSpecial(CHR(61),F3);
  111.   MakeSpecial(CHR(62),F4);
  112.   MakeSpecial(CHR(63),F5);
  113.   MakeSpecial(CHR(64),F6);
  114.   MakeSpecial(CHR(65),F7);
  115.   MakeSpecial(CHR(66),F8);
  116.   MakeSpecial(CHR(67),F9);
  117.   MakeSpecial(CHR(68),F10);
  118.  
  119.   MakeSpecial(CHR(84),ShF1);
  120.   MakeSpecial(CHR(85),ShF2);
  121.   MakeSpecial(CHR(86),ShF3);
  122.   MakeSpecial(CHR(87),ShF4);
  123.   MakeSpecial(CHR(88),ShF5);
  124.   MakeSpecial(CHR(89),ShF6);
  125.   MakeSpecial(CHR(90),ShF7);
  126.   MakeSpecial(CHR(91),ShF8);
  127.   MakeSpecial(CHR(92),ShF9);
  128.   MakeSpecial(CHR(93),ShF10);
  129.  
  130.   MakeSpecial(CHR(94),CtF1);
  131.   MakeSpecial(CHR(95),CtF2);
  132.   MakeSpecial(CHR(96),CtF3);
  133.   MakeSpecial(CHR(97),CtF4);
  134.   MakeSpecial(CHR(98),CtF5);
  135.   MakeSpecial(CHR(99),CtF6);
  136.   MakeSpecial(CHR(100),CtF7);
  137.   MakeSpecial(CHR(101),CtF8);
  138.   MakeSpecial(CHR(102),CtF9);
  139.   MakeSpecial(CHR(103),CtF10);
  140.  
  141.   MakeSpecial(CHR(104),AtF1);
  142.   MakeSpecial(CHR(105),AtF2);
  143.   MakeSpecial(CHR(106),AtF3);
  144.   MakeSpecial(CHR(107),AtF4);
  145.   MakeSpecial(CHR(108),AtF5);
  146.   MakeSpecial(CHR(109),AtF6);
  147.   MakeSpecial(CHR(110),AtF7);
  148.   MakeSpecial(CHR(111),AtF8);
  149.   MakeSpecial(CHR(112),AtF9);
  150.   MakeSpecial(CHR(113),AtF10);
  151.  
  152. END PcKeys.
  153.